package com.codeduck.injection.config;

import com.codeduck.injection.entity.Flag;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;

/**
 * @author: <a href="mailto:codeduck@163.com">Codeduck</a>
 * @createDate: 2021-12-24
 */
@Configuration
public class LazyBeanConfig {

    /**
     * 测试方法 {@link com.codeduck.injection.LazyBeanConfigTest}
     *
     * 懒加载的功能是，在单例模式中，IOC容器创建的时候不会马上去调用方法创建对象并注册，
     * 只有当组件第一次被使用的时候才会调用方法创建对象并加入到容器中。
     */
    @Bean
    @Lazy
    public Flag flag() {
        System.out.println("往IOC容器中注册 flag entity");
        return new Flag();
    }
}
